C.S.Burner 🪙 ━►🔥GIT Node
Node / reticulum_mirror / MeshChatX / files / meshchatx / src / frontend / components / rnode / RNodeDiagnosticsPanel.vue
Displaying Raw • Download
meshchatx/src/frontend/components/rnode/RNodeDiagnosticsPanel.vue 65ca9ddc823fcc2c8f8653c553b944b85db0875f (65ca9ddc) Text, 4.81 KB
T8b949e<!-- SPDX-License-Identifier: 0BSD -->
Tff7b72<templateTff7b72>
Tff7b72<div
Te6edf3v-if=Ta5d6ff"Ta5d6ffdiagnosticsTa5d6ff"
Te6edf3class=Ta5d6ff"Ta5d6ffborder border-gray-200 dark:border-zinc-800 bg-white dark:bg-zinc-950 rounded-lg overflow-hiddenTa5d6ff"
Tff7b72>
Tff7b72<div Te6edf3class=Ta5d6ff"Ta5d6ffpx-4 sm:px-6 py-4 border-b border-gray-100 dark:border-zinc-800 flex items-center gap-2Ta5d6ff"Tff7b72>
Tff7b72<MaterialDesignIcon Te6edf3icon-name=Ta5d6ff"Ta5d6ffstethoscopeTa5d6ff" Te6edf3class=Ta5d6ff"Ta5d6ffsize-5 text-emerald-500Ta5d6ff" Tff7b72/>
Tff7b72<h3 Te6edf3class=Ta5d6ff"Ta5d6fffont-bold text-gray-900 dark:text-zinc-100Ta5d6ff"Tff7b72>
{{ Te6edf3$t("tools.rnode_flasher.diagnostics.title") }}
Tff7b72</h3>
Tff7b72<span
Te6edf3v-if=Ta5d6ff"Ta5d6ffhasIssuesTa5d6ff"
Te6edf3class=Ta5d6ff"Ta5d6ffml-auto px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider rounded-full bg-amber-100 dark:bg-amber-900/30 text-amber-700 dark:text-amber-300Ta5d6ff"
Tff7b72>
{{ Te6edf3$t("tools.rnode_flasher.diagnostics.needs_attention") }}
Tff7b72</span>
Tff7b72<span
v-else
Te6edf3class=Ta5d6ff"Ta5d6ffml-auto px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider rounded-full bg-emerald-100 dark:bg-emerald-900/30 text-emerald-700 dark:text-emerald-300Ta5d6ff"
Tff7b72>
{{ Te6edf3$t("tools.rnode_flasher.diagnostics.healthy") }}
Tff7b72</span>
Tff7b72</div>
Tff7b72<dl Te6edf3class=Ta5d6ff"Ta5d6ffgrid grid-cols-2 sm:grid-cols-4 gap-x-4 gap-y-3 p-4 sm:p-6 text-xsTa5d6ff"Tff7b72>
Tff7b72<div Te6edf3v-for=Ta5d6ff"Ta5d6ffrow in summaryRowsTa5d6ff" Te6edf3:key=Ta5d6ff"Ta5d6ffrow.keyTa5d6ff" Te6edf3class=Ta5d6ff"Ta5d6ffspace-y-0.5 min-w-0Ta5d6ff"Tff7b72>
Tff7b72<dt Te6edf3class=Ta5d6ff"Ta5d6fftext-[10px] font-bold uppercase tracking-wider text-gray-400 dark:text-zinc-500Ta5d6ff"Tff7b72>
{{ Te6edf3$t(row.labelKey) }}
Tff7b72</dt>
Tff7b72<dd Te6edf3class=Ta5d6ff"Ta5d6fffont-mono text-gray-800 dark:text-zinc-200 break-allTa5d6ff"Tff7b72>
{{ row.value || "-" }}
Tff7b72</dd>
Tff7b72</div>
Tff7b72</dl>
Tff7b72<div
Te6edf3v-if=Ta5d6ff"Ta5d6ffhasIssuesTa5d6ff"
Te6edf3class=Ta5d6ff"Ta5d6ffborder-t border-gray-100 dark:border-zinc-800 bg-amber-50/40 dark:bg-amber-900/10 px-4 sm:px-6 py-4 space-y-2Ta5d6ff"
Tff7b72>
Tff7b72<div Te6edf3class=Ta5d6ff"Ta5d6fftext-[10px] font-bold uppercase tracking-wider text-amber-700 dark:text-amber-300Ta5d6ff"Tff7b72>
{{ Te6edf3$t("tools.rnode_flasher.diagnostics.issues_detected") }}
Tff7b72</div>
Tff7b72<ul Te6edf3class=Ta5d6ff"Ta5d6fflist-disc pl-4 text-xs text-amber-800 dark:text-amber-200 space-y-1Ta5d6ff"Tff7b72>
Tff7b72<li Te6edf3v-for=Ta5d6ff"Ta5d6ffkey in diagnostics.suggestionKeysTa5d6ff" Te6edf3:key=Ta5d6ff"Ta5d6ffkeyTa5d6ff"Tff7b72>{{ Te6edf3$t(key) }}Tff7b72</li>
Tff7b72</ul>
Tff7b72</div>
Tff7b72</div>
Tff7b72</template>
Tff7b72<scriptTff7b72>
import MaterialDesignIcon from "../MaterialDesignIcon.vue";
export default {
name: "RNodeDiagnosticsPanel",
components: { MaterialDesignIcon },
props: {
diagnostics: { type: Object, default: null },
},
computed: {
hasIssues() {
return Array.isArray(this.diagnostics?.issues) && this.diagnostics.issues.length > 0;
},
summaryRows() {
const s = this.diagnostics?.summary || {};
return [
{
key: "firmware_version",
labelKey: "tools.rnode_flasher.diagnostics.firmware_version",
value: s.firmware_version,
},
{
key: "platform",
labelKey: "tools.rnode_flasher.diagnostics.platform",
value: s.platform != null ? `0x${s.platform.toString(16).padStart(2, "0")}` : null,
},
{
key: "board",
labelKey: "tools.rnode_flasher.diagnostics.board",
value: s.board != null ? `0x${s.board.toString(16).padStart(2, "0")}` : null,
},
{
key: "is_provisioned",
labelKey: "tools.rnode_flasher.diagnostics.provisioned",
value: s.is_provisioned ? "yes" : "no",
},
{
key: "product",
labelKey: "tools.rnode_flasher.diagnostics.product",
value: s.product != null ? `0x${s.product.toString(16).padStart(2, "0")}` : null,
},
{
key: "model",
labelKey: "tools.rnode_flasher.diagnostics.model",
value: s.model != null ? `0x${s.model.toString(16).padStart(2, "0")}` : null,
},
{
key: "fw_hash",
labelKey: "tools.rnode_flasher.diagnostics.firmware_hash",
value: s.firmware_hash ? s.firmware_hash.slice(0, 16) : null,
},
{
key: "target_hash",
labelKey: "tools.rnode_flasher.diagnostics.target_hash",
value: s.target_firmware_hash ? s.target_firmware_hash.slice(0, 16) : null,
},
];
},
},
};
Tff7b72</script>
Served by rngit 1.5.2 - Generated in 0.02s